//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.hustcad.plm.rpm.model.dto.library;

import cn.hutool.core.bean.BeanUtil;
import com.hustcad.plm.pdm.core.base.EntityBase;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import org.springframework.context.annotation.Primary;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

@ApiModel(
    value = "库树结构DTO",
    description = ""
)
@Primary
@AllArgsConstructor
public class LibNodeTreeDTO extends EntityBase {
    private static final long serialVersionUID = 8893022465785297821L;
    private List<LibNodeTreeDTO> children = new ArrayList();
    private String name;
    private String parentFolderOID;
    private String parentFolderOTYPE;

    private String developmentLevel;
    private String developmentMode;
    private String pushMode;
    private String projectOID;
    private String projectOTYPE;
    private String projectName;
    private String curPlanOid;
    private String status;


    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public LibNodeTreeDTO() {
    }

    public String getCurPlanOid() {
        return curPlanOid;
    }

    public void setCurPlanOid(String curPlanOid) {
        this.curPlanOid = curPlanOid;
    }

    public String getDevelopmentLevel() {
        return developmentLevel;
    }

    public void setDevelopmentLevel(String developmentLevel) {
        this.developmentLevel = developmentLevel;
    }

    public String getDevelopmentMode() {
        return developmentMode;
    }

    public void setDevelopmentMode(String developmentMode) {
        this.developmentMode = developmentMode;
    }

    public String getPushMode() {
        return pushMode;
    }

    public void setPushMode(String pushMode) {
        this.pushMode = pushMode;
    }

    public String getProjectOID() {
        return projectOID;
    }

    public void setProjectOID(String projectOID) {
        this.projectOID = projectOID;
    }

    public String getProjectOTYPE() {
        return projectOTYPE;
    }

    public void setProjectOTYPE(String projectOTYPE) {
        this.projectOTYPE = projectOTYPE;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public LibNodeTreeDTO(EntityBase entityBase) {
        BeanUtil.copyProperties(entityBase, this, new String[0]);
    }

    public List<LibNodeTreeDTO> getChildren() {
        return this.children;
    }

    public String getName() {
        return this.name;
    }

    public String getParentFolderOID() {
        return this.parentFolderOID;
    }

    public String getParentFolderOTYPE() {
        return this.parentFolderOTYPE;
    }

    public void setChildren(final List<LibNodeTreeDTO> children) {
        this.children = children;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public void setParentFolderOID(final String parentFolderOID) {
        this.parentFolderOID = parentFolderOID;
    }

    public void setParentFolderOTYPE(final String parentFolderOTYPE) {
        this.parentFolderOTYPE = parentFolderOTYPE;
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof LibNodeTreeDTO)) {
            return false;
        } else {
            LibNodeTreeDTO other = (LibNodeTreeDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label59: {
                    Object this$children = this.getChildren();
                    Object other$children = other.getChildren();
                    if (this$children == null) {
                        if (other$children == null) {
                            break label59;
                        }
                    } else if (this$children.equals(other$children)) {
                        break label59;
                    }

                    return false;
                }

                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name != null) {
                        return false;
                    }
                } else if (!this$name.equals(other$name)) {
                    return false;
                }

                Object this$parentFolderOID = this.getParentFolderOID();
                Object other$parentFolderOID = other.getParentFolderOID();
                if (this$parentFolderOID == null) {
                    if (other$parentFolderOID != null) {
                        return false;
                    }
                } else if (!this$parentFolderOID.equals(other$parentFolderOID)) {
                    return false;
                }

                Object this$parentFolderOTYPE = this.getParentFolderOTYPE();
                Object other$parentFolderOTYPE = other.getParentFolderOTYPE();
                if (this$parentFolderOTYPE == null) {
                    if (other$parentFolderOTYPE != null) {
                        return false;
                    }
                } else if (!this$parentFolderOTYPE.equals(other$parentFolderOTYPE)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof LibNodeTreeDTO;
    }

    public int hashCode() {
        int result = 1;
        Object $children = this.getChildren();
        result = result * 59 + ($children == null ? 43 : $children.hashCode());
        Object $name = this.getName();
        result = result * 59 + ($name == null ? 43 : $name.hashCode());
        Object $parentFolderOID = this.getParentFolderOID();
        result = result * 59 + ($parentFolderOID == null ? 43 : $parentFolderOID.hashCode());
        Object $parentFolderOTYPE = this.getParentFolderOTYPE();
        result = result * 59 + ($parentFolderOTYPE == null ? 43 : $parentFolderOTYPE.hashCode());
        return result;
    }

    public String toString() {
        return "LibNodeTreeDTO(children=" + this.getChildren() + ", name=" + this.getName() + ", parentFolderOID=" + this.getParentFolderOID() + ", parentFolderOTYPE=" + this.getParentFolderOTYPE() + ")";
    }
}
